package util.assembly;

import java.util.HashSet;
import java.util.Set;

import bo.Factura;
import bo.ItemFactura;
import bo.Producto;
import dto.ItemFacturaDTO;

public class ItemFacturaAssembly {

	public static Set<ItemFactura> toBO(Set<ItemFacturaDTO> itemsDTO) {
		
		Set<ItemFactura> set = new HashSet<ItemFactura>();
		for (ItemFacturaDTO itemFacturaDTO : itemsDTO) {
			
			ItemFactura e = new ItemFactura();
			e.setId(itemFacturaDTO.getId());
			e.setCantidad(itemFacturaDTO.getCantidad());
			e.setPrecio(itemFacturaDTO.getPrecio());
			e.setDescripcion(itemFacturaDTO.getDescripcion());
			
			e.setProducto(ProductoAssembly.toBO(itemFacturaDTO.getProducto()));
			
			set.add(e);
		}
		return set;
	}
	
	public static Set<ItemFacturaDTO> toDTO(Set<ItemFactura> items) {
		
		Set<ItemFacturaDTO> set = new HashSet<ItemFacturaDTO>();
		for (ItemFactura itemFactura : items) {
			
			ItemFacturaDTO itemFacturaDTO = new ItemFacturaDTO();
			itemFacturaDTO.setId(itemFactura.getId());
			
			Integer cantidad = itemFactura.getCantidad();
			itemFacturaDTO.setCantidad(cantidad);
			
			Double precio = itemFactura.getPrecio();
			itemFacturaDTO.setPrecio(precio);
			
			if (cantidad != null && precio != null) {
				itemFacturaDTO.setTotal(cantidad * precio);
			}
			
			Factura factura = itemFactura.getFactura();
			if (factura != null) {
				itemFacturaDTO.setIdFactura(factura.getId());
			}
			
			Producto producto = itemFactura.getProducto();
			if (producto != null) {
				itemFacturaDTO.setIdProducto(producto.getId());
				itemFacturaDTO.setProducto(ProductoAssembly.toDTO(producto));
			}
			itemFacturaDTO.setDescripcion(itemFactura.getDescripcion());
			
			set.add(itemFacturaDTO);
		}
		
		return set;
	}
}
